package com.miku.blog.service;

import com.miku.blog.domain.LikeCount;
import com.baomidou.mybatisplus.extension.service.IService;
import com.miku.blog.domain.pojo.ResponseResult;

import java.util.List;

/**
* @author Miku
* @description 针对表【tb_like_count】的数据库操作Service
* @createDate 2022-06-14 22:38:06
*/
public interface LikeCountService extends IService<LikeCount> {



    /**
     * 统计文章点赞量,获取点赞最高的6篇文章id
     * @return
     */
    List<LikeCount> getLikeCountByMostLikedArticles(Integer articleId);

    /**
     * 根据用户ID 及 点赞类型   获取点赞列表
     * @param userId
     * @param type
     * @return
     */
    List<Integer> getLikeCountListByUserIdAndType(Integer userId,Integer type);


    /**
     * 根据 目标ID 及 类型  获取总点赞量
     * @param targetId
     * @param type
     */
    long getLikeCountByTargetIdAndType(Integer targetId,Integer type);


    /**
     * 添加 文章类型 点赞记录
     * @param targetId  目标ID
     * @param isLike    是否已点赞 { 0:未点赞    1:已点赞 }
     * @param type 点赞类型
     * @return
     */
    ResponseResult addLikeCountByIdAndIsLikeAndType(Integer targetId,Integer isLike,Integer type);

    /**
     * 根据 想要删除的目标ID (文章/说说/评论)  和 目标类型 (文章/说说/评论)  删除点赞信息
     * @param targetId
     * @param type
     * @return
     */
    boolean delLikeCountByTargetIdAndType(Integer targetId, Integer type);
}
